//* ==========================================================================
// Classe : Comptabilite 
// Fonctions : Fonctions et methodes metier / compta 
// 
// License:  License LGPL 
// Version :  0.01    du 13/07/2008 
// Lien : http://outils.codeplex.com 
// Auteur(s) : JF. PACORY
// CopyLeft: CopyLeft (>) 2008-2009 GlopSoft <contact@glopsoft.com>
// Création : 06/20/2009 15:57:45
// Etat : en cours
// Controle du :
// Licence : 
// L'autorisation est accordée, à titre gratuit, à toute personne d'obtenir une copie 
// de ce logiciel et de ses fichiers de documentation, pour pouvoir utiliser 
//ce logiciel sans restriction, y compris, sans s'y limiter, les droits 
// d'utiliser, de copier, de modifier, de fusionner, de publier, de distribuer, 
// de sous-licence, et / ou de vendre les copies du Logiciel, et d'autoriser les 
// personnes auxquelles le logiciel est livré de le faire, sous réserve des 
// conditions suivantes:
// 
// Les avis de droit d'auteur et la présente autorisation doivent être inclus dans 
// toutes les copies ou parties substantielles du Logiciel.
// 
// LE LOGICIEL EST FOURNI "TEL QUEL", SANS GARANTIE DE QUELQUE NATURE QUE CE SOIT, 
// EXPLICITE OU  IMPLICITE, Y COMPRIS, MAIS SANS Y LIMITER LES GARANTIES DE QUALITE 
// MARCHANDE, D'ADEQUATION A UN USAGE PARTICULIER ET D'ABSENCE DE CONTREFAÇON. EN 
// AUCUN CAS LES AUTEURS OU LES TITULAIRES DE DROITS D'AUTEUR POURRONT ETRE TENUE 
// RESPONSABLES DE TOUT DOMMAGE,  RÉCLAMATION OU AUTRE  RESPONSABILITE, DANS LE 
// CADRE D'UNE ACTION DE CONTRAT, UN DELIT OU AUTRE, DÉCOULANT DE, OU EN RELATION 
// AVEC LE LOGICIEL OU DE SON UTILISATION OU AUTRES EN RELATION AVEC LE LOGICIEL.
// Licence LGPL : http://commonlibrarynet.codeplex.com/license 
//*---------------------------------------------------------------------------
//
//* ==========================================================================

#region Références

using System;

#endregion

namespace Outils.Comptabilite
{
    /// <summary>
    /// Enumération des sens comptables
    /// </summary>
    public enum SensComptable
    {
        /// <summary>
        ///  Debit
        /// </summary>
        Debit,
        /// <summary>
        ///  Credit 
        /// </summary>
        Credit
    };

    /// <summary>
    /// Fonctions et methodes metier / compta
    /// </summary>
    public static class Comptabilite
    {

        /// <summary>
        /// Sens comptables en chaine longue
        /// </summary>
        public static string[] SensComptableLong = new string[2] { "Débit", "Crédit" };

        /// <summary>
        /// Sens comptables en chaine courte
        /// </summary>
        public static string[] SensComptableCourt = new string[2] { "D", "C" };

        #region Fonctions Retournant (D)ébit ou (C)rédit : SensEcriture

        /// <summary>
        /// Retourne Debit ou Credit selon valeur
        /// </summary>
        /// <param name="blnCredit">Credit si vrai</param>
        /// <returns>C ou D</returns>		
        public static string SensEcriture(bool blnCredit)
        {
            return blnCredit ? SensComptableCourt[1] : SensComptableCourt[0];
        }

        /// <summary>
        /// Retourne Debit ou Credit selon valeur énumérée
        /// </summary>
        /// <param name="sens">Debit ou Credit</param>
        /// <returns>C ou D</returns>	
        public static string SensEcriture(SensComptable sens)
        {
            return SensEcriture(sens == SensComptable.Credit);
        }

        #endregion

        #region Retourne Debit ou Credit selon valeur énumérée : SensEcritureChaine

        /// <summary>
        /// Retourne Debit ou Credit selon valeur énumérée
        /// </summary>
        /// <param name="sens">Debit ou Credit</param>
        /// <returns>C ou D</returns>
        public static string SensEcritureChaine(SensComptable sens)
        {
            return SensComptableLong[(int)sens];
        }

        #endregion
    }
}
